#ifndef CAR_H
#define CAR_H

#include <qstring>
#include <QMap>
#include <QDateTime>
#include <QFile>
#include "global.h"

class car
{
public:
    car();

    //简述:car对象构造方法
    //参数1:车牌号
    //参数2:类型
    //参数3:颜色
    //参数4:入场时间
    car(QString cn,QString ct,QString co,QString at,QMap<QString,car>* cm);

    //简述:添加汽车方法
    //参数1:车牌号
    //参数2:类型
    //参数3:颜色
    //参数4:入场时间
    //返回值:添加成功返回true,如果已存在该车牌号的汽车则返回false
    bool addCar(QString cn,QString ct,QString co,QString at);

    //简述:删除汽车方法
    //参数1:车牌号
    //返回值:删除成功返回true,如果不存在该车牌号的汽车则返回false
    bool delCar(QString cn);

    //简述::查找汽车方法
    //参数1:车牌号
    //返回值:如果查找到该车牌号的汽车则返回该对象,否则返回默认构造的car对象
    car findCar(QString cn);

    //简述:修改汽车信息方法
    //参数1:车牌号
    //参数2:新类型
    //参数3:新颜色
    //参数4:新入场时间
    //返回值:修改成功返回true,如果不存在该车牌号的汽车则返回false
    bool modCar(QString cn,QString ct,QString co,QString at);

    //简述:计算汽车停车时间,单位秒
    //返回值:停车时间,单位秒
    long long timeAmount();

    //简述:显示所有汽车信息,注意:此功能不在此类中实现,已在mainwindow.h中实现
    void showInfo();

    //简述:保存汽车信息
    //返回值:保存成功返回true,失败返回false
    bool saveInfo();

    QString getCarNum();//获取车牌号
    QString getCarType();//获取车类型
    QString getColor();//获取车颜色
    QDateTime getAllTime();//获取车到达时间

private:
    QString carNum;//车牌号
    QString carType;//类型
    QString color;//颜色
    QDateTime allTime;//入场时间
    QMap<QString,car>* carMap;//汽车信息数据图
};

#endif // CAR_H
